1. Field
This disclosure is generally related to computer networking. More specifically, this disclosure is related to Quality of Service (QoS) provisioning in a network.
2. Related Art
A bandwidth profile is a set of traffic parameters applicable to a sequence of packets to provision QoS in a network. A rate color marker is often used with a bandwidth profile to determine the level of packet compliance with the specified bandwidth profile parameters. A rate color marker assigns different colored tokens to packets, and can thereby meter a sequence of packets, and mark or re-mark packets to indicate their level of compliance to a bandwidth profile. Such metering and marking can be used to enable services, such as provisioning QoS or congestion control, in communication networks. For example, the packet color marking may be used to indicate the level of assurance as to whether the packet is forwarded or discarded.
The Metro Ethernet Forum (MEF) specification MEF 10.1 is an industrial standard that defines a rate color marker method, or bandwidth profile method. The MEF 10.1 rate color marker marks, or re-marks, each packet or frame with the level of compliance with a bandwidth profile using one of three colors: green for high compliance, yellow for medium compliance, and red for low compliance.
The MEF 10.1 specification defines a bandwidth profile for a Virtual Circuit (VC) governed by six parameters <CIR, CBS, EIR, EBS, CF, CM>, where:                CIR is the Committed Information Rate expressed as bits per second.        CBS is the Committed Burst Size expressed as bytes (or data units).        EIR is the Excess Information Rate expressed as bits per second.        EBS is the Excess Burst Size expressed as bytes.        CF is the Coupling Flag with two possible values, 0 or 1.        CM is the Color Mode with two possible values, “color-blind” or “color-aware.”        
A rate color marker is in color-aware mode when each incoming packet already has a marking (i.e., a color) associated with it and that marking is taken into account in determining the new marking of the packet. Therefore, the rate color marker in color-aware mode may re-mark packets with a new color. By contrast, a rate color marker is in color-blind mode when the marking (if any) already associated with each packet is not taken into account in determining the new marking of the packet. The color mode of operation is determined using the parameter CM.
The operation of the existing rate color marker is as follows. The rate color marker uses a green token bucket and a yellow token bucket. At time t0, the green token bucket has CBS tokens and the yellow token bucket has EBS tokens. During operation, the green token bucket is monotonically incremented at the CIR rate if the bucket has fewer than CBS tokens, i.e., it is not full. The yellow token bucket is monotonically incremented at the EIR rate if it has fewer than EBS tokens, i.e., it is not full. Additionally, if the green token bucket is full and CF=1, the yellow token bucket is incremented at the additional CIR rate if it has less than EBS tokens, i.e., if it is not full. The effect of incrementing the yellow token bucket at the additional CIR rate when the green token bucket is full can be equivalently described as monotonically incrementing the green token bucket at the CIR rate and sending overflow tokens that exceed the capacity of the green token bucket, i.e., CBS tokens, to the yellow token bucket, if it is not full.
The following refers to the operation of the rate color marker in color-blind mode, i.e., CM=color-blind. When receiving a packet of length lj bytes at time tj, where j≧1 and tj+1≧tj, if the green token bucket has at least lj tokens, the packet is marked, or re-marked, green and the number of tokens in the green token bucket is decremented by lj tokens. Else, if the yellow token bucket has at least lj tokens, the packet is marked, or re-marked, yellow and the yellow token bucket is decremented by lj tokens. Otherwise, the packet is marked red.
The following refers to the operation of the existing rate color marker in color-aware mode, i.e., CM=color-aware. When receiving a packet of lj bytes at time tj, where j≧1 and tj+1≧tj, if the packet is marked green and the green token bucket has at least lj tokens, the packet marking is maintained green and the number of tokens in the green token bucket is decremented by lj tokens. Else, if the packet is not marked red, i.e., the packet is marked green or yellow, and the yellow token bucket has at least lj tokens, the packet is re-marked yellow and the yellow token bucket is decremented by lj tokens. Otherwise, the packet is re-marked red.
The operation of the existing rate color marker can be more formally defined as follows. For a sequence of packets, {tj, lj}, j≧1, tj+1≧tj, with arrival times at time tj and lengths lj, the marking, or re-marking, of each packet is defined according to the procedure in Table 1. For this procedure, Bc(t) and Be(t) are the number of tokens in the committed (green) and excess (yellow) token buckets, respectively, at a given time t, where Bc(t0)=CBS and Be(t0)=EBS, and O(tj) is the number of tokens that overflows the green token bucket in the interval of time (tj+1, tj].
Two other rate color marker mechanisms are documented in Internet Engineering Task Force (IETF) Informational Request for Comments (RFC) 2697 and 2698. See Heinanen, J. and R. Guerin, “A Single Rate Three Color Marker,” RFC 2697 (September, 1999), and Heinanen, J. and R. Guerin, “A Two Rate Three Color Marker,” RFC 2698 (September, 1999).
Typically, a network device uses a rate color marker to determine the disposition of packets based on their markings. In general, packets marked green are given higher forwarding priority than those marked yellow, and packets marked red are discarded.
TABLE 1Conventional Rate Color Marker Algorithm
The existing rate color marker marks packets according to a VC bandwidth profile. However, a VC may carry packets from different Classes of Service (CoS). For example, a VC may carry voice traffic assigned to CoS 1, video traffic assigned to CoS 2, and Internet traffic assigned to CoS 3. Separating traffic into classes of service allow a service provider to provision better service quality to one CoS at the expense of other lower priority CoS. In this example, the service provider could provide better service to CoS 1, which carries voice traffic. Given that the bandwidth profile defined in MEF 10.1 does not distinguish classes of service within the VC when marking packets, some of the packets from CoS 1 may be marked yellow or even red due to excessive traffic from CoS 2 and 3.
Consider an example where an MEF 10.1 rate color marker with CIR=6 Mb/s (megabits per second) and EIR=4 Mb/s is used to meter a VC containing CoS 1, 2, and 3 with 4 Mb/s of traffic each on average. In this case, the VC presents a total of 12 Mb/s of traffic to the rate color marker. As a result, 6 Mb/s of packets in the traffic will be marked green on average, 4 Mb/s of the packets will be marked yellow on average, and 2 Mb/s of the packets will be marked red on average. The problem in this scenario is that there is no guarantee that CoS 1 will have all of its 4 Mb/s of traffic marked green on average. Depending on the traffic dynamics, CoS 2 or CoS 3 could have their packets marked green instead and leave CoS 1 with all of its packets marked yellow or red.